package com.javasm.adminapi.module.system.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.javasm.adminapi.module.system.entity.RolePermission;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

/**
 * 角色权限中间表(RolePermission)表数据库访问层
 *
 * @author makejava
 * @since 2025-10-18 22:29:09
 */
public interface RolePermissionDao extends BaseMapper<RolePermission> {

    @Select("select * from role_permission where permission_id=#{pid} and role_id=#{rid}")
    RolePermission getRolePermission(@Param("pid") Long pid,@Param("rid") Long rid);
    @Select("SELECT id, role_id, permission_id, create_time, `add`, `update`, `delete` " +
            "FROM role_permission " +
            "WHERE permission_id=#{menuId} AND role_id=#{roleId}")
    RolePermission getByIdd(@Param("menuId") Integer menuId, @Param("roleId") Integer roleId);
    @Update("UPDATE role_permission " +
            "SET " +
            "role_id = #{roleId}, " +  // 对应实体类roleId属性（数据库列名role_id）
            "permission_id = #{permissionId}, " +  // 对应实体类permissionId属性（数据库列名permission_id）
            "create_time = #{createTime}, " +  // 对应实体类createTime属性（数据库列名create_time）
            "`add` = #{add}, " +  // 关键字列名，必须用反引号转义（对应实体类add属性）
            "`update` = #{update}, " +  // 关键字列名，反引号转义（对应实体类update属性）
            "`delete` = #{delete} " +  // 关键字列名，反引号转义（对应实体类delete属性）
            "WHERE id = #{id}")  // 根据主键id更新
    void updateByIdd(RolePermission byId);
}

